---
title: 'Astro Studio'
description: 用于管理 Astro DB 的交互式仪表板。
i18nReady: true
---
import ReadMore from '~/components/ReadMore.astro';
import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro'

[Astro Studio 网页门户](http://studio.astro.build) 允许你通过网页界面或使用 [CLI 命令](/zh-cn/reference/cli-reference/#astro-studio-cli) 连接并管理你的远程托管的 [Astro DB 数据库](/zh-cn/guides/astro-db/)。

在你的 Studio 仪表板，你可以访问账号管理、帮助文章和支持消息控制台等。

访问 [Astro Studio](http://studio.astro.build) 进行注册或登录。

## 创建新的 Studio 项目

在 Astro Studio 中有两种方式创建项目:

1. [**使用 Astro Studio 网页界面**](https://studio.astro.build)从新的或现有的 GitHub 仓库创建。

    点击页头中的 "create project" 按钮并按照说明开始操作。Astro Studio 将连接到你的 GitHub 仓库，并为你的项目创建一个新的托管数据库。

2. **使用 Astro Studio CLI** 从任何本地 Astro 项目创建。你可以运行以下命令开始:

    <PackageManagerTabs>
    <Fragment slot="npm">
    ```shell
    # 使用你的 GitHub 账号登录到 Astro Studio
    npx astro login

    # 根据提示链接到一个新的项目
    npx astro link

    # (可选) 将你的本地数据库配置推送到远程数据库
    npx astro db push
    ```
    </Fragment>
    <Fragment slot="pnpm">
    ```shell
    # 使用你的 GitHub 账号登录到 Astro Studio
    pnpm astro login

    # 根据提示链接到一个新的项目
    pnpm astro link

    # (可选) 将你的本地数据库配置推送到远程数据库
    pnpm astro db push
    ```
    </Fragment>
    <Fragment slot="yarn">
    ```shell
    # 使用你的 GitHub 账号登录到 Astro Studio
    yarn astro login

    # 根据提示链接到一个新的项目
    yarn astro link

    # (可选) 将你的本地数据库配置推送到远程数据库
    yarn astro db push
    ```
    </Fragment>
    </PackageManagerTabs>

    一旦你已经成功登录并链接，你就可以运行所有的 Astro DB 命令来管理你的远程数据库。

    <ReadMore>查看 [Astro DB CLI 参考](/zh-cn/guides/integrations-guide/db/#astro-db-cli-参考) 获取所有可用命令。</ReadMore>


## 使用 Studio 连接进行部署

你可以使用与你的 Studio 数据库的实时连接来部署你的 Astro DB 项目。这可以在任何使用静态构建或 [SSR 适配器](/zh-cn/guides/server-side-rendering/) 的部署平台上实现。

首先，配置你的构建命令以使用 `--remote` 标志与 Studio 连接。这个示例将该标志应用到你项目 `package.json` 中的 `"build"` 脚本。如果你的部署平台接受构建命令，确保这被设置成 `npm run build`。

```json title="package.json" "--remote"
{
  "scripts": {
    "build": "astro build --remote"
  }
}
```

### 创建一个 Studio 应用令牌

你需要创建一个应用令牌来从生产部署访问你的 Studio 数据库。你可以通过导航到 **Settings** 标签页并选择 **Tokens** 从你的 Studio 项目仪表板创建一个应用令牌。

复制生成的令牌并在你的部署平台中使用名称 `ASTRO_STUDIO_APP_TOKEN` 作为环境变量 / 环境秘钥。

## 设置 GitHub CI Action

你可以使用 Studio CI 流水线自动推送模式更改到你的 Studio 数据库。每当你合并到 `main` 时，这将会校验更改是否可以安全地进行，并且都会保持你的配置更新。

[按照 GitHub 的文档](https://docs.github.com/zh/actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository) 在你的仓库中配置一个新的秘钥，名称为 `ASTRO_STUDIO_APP_TOKEN`，并将你的 Studio 应用令牌作为秘钥的值。

一旦你的秘钥配置好，就在你的项目的 `.github/workflows` 目录中创建一个新的 GitHub Actions 工作流文件，将检出仓库和安装 Node.js 作为步骤，并使用 `withastro/action-studio` 动作来同步模式更改。

该动作会在所有 [事件触发器](https://docs.github.com/zh/actions/using-workflows/events-that-trigger-workflows) 上运行 `astro db verify`，以确保架构更改可以安全地应用。如果你特别添加了 **[push](https://docs.github.com/zh/actions/using-workflows/events-that-trigger-workflows#push)** 触发器，那么该动作会将这些更改推送到你的 Studio 数据库。

这个示例 GitHub Action `_studio.yml` 在 `main` 分支更新时推送更改：

```yaml title=".github/workflows/_studio.yml"
name: Astro Studio

env:
  ASTRO_STUDIO_APP_TOKEN: ${{secrets.ASTRO_STUDIO_APP_TOKEN }}

on:
  push:
    branches:
      - main
  pull_request:
    types: [opened, reopened, synchronize]

jobs:
  DB:
    permissions:
      contents: read
      actions: read
      pull-requests: write
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - uses: jaid/action-npm-install@v1.2.1
      - uses: withastro/action-studio@main
```
